import 'dart:typed_data';
import '../base/crypto_base.dart';

// 大象密钥
class ElephantCrypto extends CryptoBase {
  @override
  int? get notCryptoPrefixLength => 4;

  @override
  int? get notCryptoSuffixLength => 0;

  @override
  int? get randCryptKeyIndex => 3;

  @override
  int? get escapeByte => null;

  @override
  Uint8List? get needEscapeBytes => null;

  @override
  int? get notEscapePrefixLength => null;

  @override
  int? get notEscapeSuffixLength => null;

  @override
  bool get needCrypto => true;

  @override
  Uint8List get cryptoTable => Uint8List.fromList([
        144,
        136,
        240,
        229,
        79,
        231,
        110,
        69,
        215,
        238,
        101,
        120,
        239,
        153,
        163,
        82,
        127,
        90,
        148,
        247,
        246,
        205,
        171,
        162,
        24,
        27,
        250,
        142,
        253,
        6,
        113,
        68,
        98,
        86,
        243,
        220,
        201,
        200,
        222,
        248,
        203,
        32,
        177,
        43,
        132,
        146,
        202,
        37,
        60,
        130,
        172,
        157,
        121,
        181,
        88,
        85,
        105,
        44,
        251,
        252,
        235,
        1,
        76,
        198,
        34,
        180,
        91,
        20,
        193,
        92,
        213,
        187,
        145,
        176,
        38,
        219,
        87,
        182,
        103,
        216,
        84,
        223,
        126,
        40,
        233,
        167,
        9,
        218,
        134,
        46,
        15,
        61,
        3,
        51,
        63,
        112,
        131,
        16,
        10,
        30,
        190,
        94,
        161,
        35,
        191,
        109,
        115,
        125,
        122,
        114,
        192,
        102,
        2,
        39,
        57,
        209,
        225,
        25,
        129,
        111,
        81,
        169,
        26,
        75,
        230,
        155,
        212,
        139,
        78,
        158,
        116,
        54,
        71,
        185,
        186,
        11,
        18,
        106,
        149,
        236,
        227,
        204,
        22,
        242,
        4,
        108,
        107,
        96,
        226,
        245,
        70,
        33,
        21,
        138,
        164,
        104,
        52,
        150,
        58,
        49,
        140,
        151,
        89,
        67,
        210,
        64,
        74,
        194,
        241,
        199,
        166,
        156,
        80,
        255,
        228,
        188,
        12,
        118,
        45,
        159,
        56,
        207,
        141,
        0,
        128,
        13,
        73,
        197,
        133,
        95,
        14,
        173,
        31,
        175,
        97,
        179,
        249,
        124,
        165,
        244,
        189,
        41,
        5,
        117,
        154,
        7,
        184,
        206,
        232,
        137,
        183,
        8,
        36,
        234,
        178,
        100,
        19,
        254,
        50,
        152,
        119,
        143,
        93,
        29,
        59,
        83,
        211,
        224,
        65,
        195,
        28,
        196,
        174,
        221,
        208,
        147,
        55,
        237,
        135,
        168,
        170,
        17,
        160,
        123,
        72,
        77,
        23,
        48,
        217,
        47,
        214,
        99,
        53,
        42,
        62,
        66,
      ]);

  @override
  Uint8List get cryptoAes => Uint8List.fromList([
        0xA2,
        0x3C,
        0xBC,
        0x5F,
        0x11,
        0x4B,
        0xA1,
        0xD5,
        0x42,
        0x26,
        0xE6,
        0x39,
        0x9E,
        0xB3,
        0x2F,
        0xD1
      ]);
}
